package com.ygxsk.carhome.ui.order;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.PixelFormat;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.telephony.mbms.DownloadRequest;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;

import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.NetworkUtils;
import com.blankj.utilcode.util.ObjectUtils;
import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ThreadUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.eralp.circleprogressview.CircleProgressView;
import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebView;
import com.tencent.smtt.sdk.WebViewClient;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.alertview.AlertView;
import com.ygxsk.carhome.alertview.OnItemClickListener;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraKey;
import com.ygxsk.carhome.constant.ExtraValue;
import com.ygxsk.carhome.js.MJavascriptInterface;
import com.ygxsk.carhome.permission.PermissionSetting;
import com.ygxsk.carhome.response.GoodsBean;
import com.ygxsk.carhome.ui.ErrorActivity;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.views.ProgressView;
import com.ygxsk.carhome.views.X5WebView;

import org.greenrobot.eventbus.EventBus;

import java.util.concurrent.TimeUnit;

import butterknife.BindView;
import io.reactivex.disposables.CompositeDisposable;

/**
 * @date 2018/1/19 0019
 * @auther itchenqi
 * @description 普通的正常的webView内容 携带标记内容过来
 */
public class WebGoodDetaillActivity extends ErrorActivity {

    //@BindView(R.id.loadingeasyinwebindetail)
    //LoadingLayout loadingeasyInWebDetail;

    @BindView(R.id.framelayoutwebviedetail)
    FrameLayout frameLayoutWebViewDetail;

//    @BindView(R.id.layoutprogressbarwebdetail)
//    MaterialProgressBar materialProgressBarWebdetail;

    @BindView(R.id.circle_progress_view)
    CircleProgressView mCircleProgressView;

    //private com.tencent.smtt.sdk.WebView mWebView;
    private X5WebView mWebView;

    //这个在加载完毕设置不再刷新时候使用。
    //@BindView(R.id.refreshlayoutintdetail)
    //com.scwang.smartrefresh.layout.SmartRefreshLayout refreshLayoutInWebGoods;

    //@BindView(R.id.toolbar_layoutbackinweb)
    //RelativeLayout toolbarLayoutBack;//左侧的按钮内容

//    @BindView(R.id.toolbar_layoutrightingoodsdetail)
//    RelativeLayout toolbar_layoutRightInGoodsDetail;

    /**
     * 详情内的小红点信息
     */
    private ImageView imageViewHongDianIndetail;

    /**
     * 从团购列表携带过来的商品内容
     */
    private GoodsBean goodsBean;

    /**
     * webview的从哪儿进入的标志内容正常的商品跳转到详情是0，家具的跳转是1
     */
    private int webViewFlag = 0;

    /**
     * 这个标识主要是用于在详情内点击了添加购物车之后需要同时首页刷新的
     */
    private int flag_jumpFrom_where;

    /**
     * 从浏览器传递过来的参
     */
    private String queryBrowser;

    /**
     * 从浏览器扫码传递过来的商店id值
     */
    private String shopInfoBrowser;
    /**
     * 从浏览器过来的商品id值
     */
    private String productIdBrowser;

    /**
     * 关于请求内容
     */
    private DownloadRequest mRequest;

    /**如果是正常的加载webView内容，这个字段仅仅在加载扫描二维码的时候使用*/
    //private boolean extra_webview_nomal;

    /**
     * 会话信息
     */
    //private Session mSession;

    /**
     * 该商品的id内容从团够商品列表携带过来的
     */
    private int productIdPass;

    /**
     * 获取轮播图内容的id内容专题类
     */
    private String broadcastingwebViewUrl;


    /**
     * 该商品的数量内容，假如不编辑商品数量直接假如购物车，那么就是添加1个商品
     */
    private int productCountPass = 1;

    /**
     * 弹窗提示
     */
    private AlertView mAlertView;

    /**
     * 做禁止双击的操作
     */
    private CompositeDisposable mCompositeDisposable = new CompositeDisposable();

    //==================================================================================

    /**
     * 填充权限设置内容
     */
    private PermissionSetting mSetting;

    /**
     * 该界面的分享内容
     */
    //    private  UMShareAPI mShareAPI;
    //分享内容
    //    private ShareAction mShareAction;
    //友盟的点击监听
    //    private UMShareListener mShareListener;

    //查看web大图的功能============================================================
    //private List<String> listImgSrc = new ArrayList<>();
    //====================================================================================
    /**
     * 识别出来商品详情的主页的操作
     */
    private final int HANDLER_WEBDETAIL_FLAG = 203;
    /**
     * 识别出二维码的时候做处理操作
     */
    private final int HANDLER_QCODE_FLAG = 2033;

    /**
     * 更新该界面的进度条信息
     */
    private final int HANDLER_PROGRESS_FLAG = 204;

    private ProgressView progressView;

    /**
     * 商品详情内添加
     */
    private Handler handlerWebDetail = new Handler() {

        @Override
        public void handleMessage(Message msg) {

            switch (msg.what) {

                case HANDLER_WEBDETAIL_FLAG: {

                    //LogUtils.d("itchen---商品详情加载-->"+(String)msg.obj);
                    method_loadUrl((String) msg.obj);

                    break;
                }

                case HANDLER_QCODE_FLAG: {

                    String codeResult = (String) msg.obj;

                    if (ActivityUtils.isActivityAlive(WebGoodDetaillActivity.this)) {

                        new MaterialDialog.Builder(WebGoodDetaillActivity.this)
                                .title("扫描结果")//
                                .content("该链接将跳转到外部页面：" + "\r\n" + codeResult)//
                                .positiveText("打开链接")//
                                .negativeText("关闭")//
                                .neutralText("复制链接")//
                                .onPositive(new MaterialDialog.SingleButtonCallback() {
                                    @Override
                                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

                                        //弹窗其实是否打开链接
                                        final Intent intent = new Intent();
                                        intent.setAction(Intent.ACTION_VIEW);
                                        intent.setData(Uri.parse(codeResult));

                                        // 注意此处的判断intent.resolveActivity()可以返回显示该Intent的Activity对应的组件名
                                        // 官方解释 : Name of the component implementing an activity that can display the intent
                                        if (intent.resolveActivity(getPackageManager()) != null) {

                                            //final ComponentName componentName = intent.resolveActivity(getPackageManager());
                                            // 打印Log   ComponentName到底是什么
                                            //Log.e(TAG, "componentName = " + componentName.getClassName());
                                            startActivity(Intent.createChooser(intent, "请选择浏览器"));

                                        } else {
                                            ToastUtils.make().setGravity(Gravity.CENTER, 0, 0);
                                            ToastUtils.showShort("没有匹配的程序打开该链接~");
                                        }

                                    }
                                })
                                .onNeutral(new MaterialDialog.SingleButtonCallback() {
                                    @Override
                                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

                                        //复制到剪切板的内容。
                                        ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                                        ClipData clipData = ClipData.newPlainText("newPlainTextLabel", codeResult);
                                        cm.setPrimaryClip(clipData);
                                        ToastUtils.make().setGravity(Gravity.CENTER, 0, 0);
                                        ToastUtils.showShort("复制成功~");

                                    }
                                })
                                .onNegative(new MaterialDialog.SingleButtonCallback() {
                                    @Override
                                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                                        //LogUtils.d("关闭弹窗");
                                    }
                                })
                                .cancelable(true)
                                .show();//
                    }


                    break;
                }

                case HANDLER_PROGRESS_FLAG: {

                    //int newProgress = (int) msg.obj;

                    if ((int) msg.obj == 100) {

                        if (mCircleProgressView != null) {
                            mCircleProgressView.setVisibility(View.GONE);
                        }
                        //加载完毕进度条消失
                        if (progressView != null) {
                            progressView.setVisibility(View.GONE);
                        }

                    } else {
                        //更新进度
                        if (mCircleProgressView != null) {
                            mCircleProgressView.setProgress((int) msg.obj);
                        }

                        if (progressView != null) {
                            progressView.setVisibility(View.VISIBLE);
                            progressView.setProgress((int) msg.obj);
                        }

                    }

                    break;
                }

                default:
                    break;
            }

        }
    };

    /**
     * 展示分享的对话框
     */
    private MaterialDialog shareDialog;

    //友盟分享的监听器内容
//    private UMShareListener umShareListener = new UMShareListener() {
//        @Override
//        public void onStart(SHARE_MEDIA share_media) {
//
//            closeShareDialog();
//
//            if (ActivityUtils.isActivityAlive(WebGoodDetaillActivity.this)) {
//
//                shareDialog = new MaterialDialog.Builder(WebGoodDetaillActivity.this)
//                        .content("请稍等~")// 内容
//                        .progress(true, 0)// 不确定进度条
//                        .show();
//
//            }
//
//            // 显示对话框
//            //https://blog.csdn.net/x283930450/article/details/80525867
//
//            //LogUtils.d("itchen--->启动分享 onStart");
//
//            //SocializeUtils.safeShowDialog(shareDialog);
//
//        }
//
//        @Override
//        public void onResult(SHARE_MEDIA share_media) {
//
//            //LogUtils.d("itchen--->分享结果返回 onResult，分享成功--"+share_media.getName());
//            closeShareDialog();
//
//
//        }
//
//        @Override
//        public void onError(SHARE_MEDIA share_media, Throwable throwable) {
//            //LogUtils.d("itchen--->分享报错 onError--"+throwable.getLocalizedMessage().toString());
//            closeShareDialog();
//        }
//
//        @Override
//        public void onCancel(SHARE_MEDIA share_media) {
//
//            //LogUtils.d("itchen--->分享取消 onCancel --");
//            closeShareDialog();
//
//        }
//    };

//    private void closeShareDialog() {
//
//        SocializeUtils.safeCloseDialog(shareDialog);
//
//        if (shareDialog != null) {
//            shareDialog.dismiss();
//            shareDialog = null;
//        }
//
//    }

    //private MaterialDialog materialDialogDebug;

    /**
     * 添加是哪个 url 加载出来的页面。为了匹配不要去点击查看大图的内容
     */
    private String requestCurrentLoadPgeUrl = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //这个添加之后导致webview底部的【加入购物车】或者【立即购买】消失掉。
        //AndroidBug5497Workaround.assistActivity(this);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        //mSession = Session.get(this);

        processExtraData();

        //顶部可以写Rxjava内容传递消息内容
        initloading();

        initViews();

        //2018年06月22日发现这块在断网的时候进入详情，不能出来错误页面
        gainDatas();

        //添加eventbus监听
        if (!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this);
        }

        mSetting = new PermissionSetting(this);
        //LogUtils.d("itchen----WebGoodDetaillActivity----onCreate");
    }

    @Override
    protected void onResume() {
        super.onResume();

        //mSession = Session.get(this);

        if (mWebView != null) {
            mWebView.onResume();
        }

//        closeShareDialog();

        //LogUtils.d("itchen--->WebGoodDetaillActivity onResume");
        //LogUtils.d("itchen----WebGoodDetaillActivity----onResume");
    }

    @Override
    public Resources getResources() {//还原字体大小
        Resources res = super.getResources();
        //非默认值
        if (res.getConfiguration().fontScale != 1) {
            Configuration newConfig = new Configuration();
            newConfig.setToDefaults();//设置默认
            res.updateConfiguration(newConfig, res.getDisplayMetrics());
        }
        return res;
    }


    @Override
    protected void onPause() {
        super.onPause();

        //LogUtils.d("itchen--->WebGoodDetaillActivity onPause");

        if (mWebView != null) {
            mWebView.onPause();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        //LogUtils.d("itchen--->WebGoodDetaillActivity onActivityResult");
//        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        //LogUtils.d("itchen--->WebGoodDetaillActivity onDestroy");

        requestCurrentLoadPgeUrl = "";

        //清空下载的实体
//        Download.getInstance().cancelBySign(this);

        flag_jumpFrom_where = 0;

        webViewFlag = 0;//重置内容

        productIdPass = 0;//reset

        broadcastingwebViewUrl = "";//release

        if (mSetting != null) {
            mSetting = null;
        }

        checkClose();

        if (mAlertView != null) {
            CommUtils.checkDialog(mAlertView);
            mAlertView = null;
        }

        if (mCompositeDisposable != null) {
            mCompositeDisposable.clear();
        }

        if (!ObjectUtils.isEmpty(handlerWebDetail)) {
            handlerWebDetail.removeCallbacksAndMessages(null);
        }


        if (mWebView != null) {

            //出现webview的怪异bug
            ThreadUtils.executeBySingleWithDelay(new ThreadUtils.SimpleTask<Void>() {

                @Nullable
                @Override
                public Void doInBackground() throws Throwable {

                    // 如果先调用destroy()方法，则会命中if (isDestroyed()) return;这一行代码，需要先onDetachedFromWindow()，再
                    // destory()
                    ViewParent parent = mWebView.getParent();
                    if (parent != null) {
                        //LogUtils.d("itchen--WebGoodDetaillActivity-->ViewParent不是空的");
                        ((ViewGroup) parent).removeView(mWebView);
                    }

                    mWebView.stopLoading();
                    mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
                    // 退出时调用此方法，移除绑定的服务，否则某些特定系统会报错
                    mWebView.getSettings().setJavaScriptEnabled(false);
                    mWebView.clearHistory();
                    mWebView.clearView();
                    mWebView.removeAllViews();

                    mWebView.setVisibility(View.GONE);

                    mWebView.destroy();
                    //还有网上解释说给webView设置为GONE即可。
                    //LogUtils.d("itchen--WebGoodDetaillActivity-->打印mWebView="+mWebView);
                    //打印的有值，还未死掉
                    mWebView = null;

                    if (frameLayoutWebViewDetail != null) {
                        frameLayoutWebViewDetail = null;
                    }

                    //LogUtils.d("itchen--WebGoodDetaillActivity-->webView的  doInBackground");

                    return null;
                }

                @Override
                public void onSuccess(@Nullable Void result) {

                    //LogUtils.d("itchen---->webView的  onSuccess");

                }
            }, 1000, TimeUnit.MILLISECONDS);

        }

        if (progressView != null) {
            progressView = null;
        }

        if (frameLayoutWebViewDetail != null) {

            //LogUtils.d("itchen---frameLayoutWebViewDetail->还不是空的");
            frameLayoutWebViewDetail.removeAllViews();
            //frameLayoutWebViewDetail = null;
        }

        EventBus.getDefault().unregister(this);

//        closeShareDialog();

//        if (!ObjectUtils.isEmpty(umShareListener)) {
//            umShareListener = null;
//        }

//        if (materialProgressBarWebdetail != null) {
//            materialProgressBarWebdetail = null;
//        }

//        UMShareAPI.get(WebGoodDetaillActivity.this).release();


    }

    // R.id.imageviewsharecontent
//    @OnClick({R.id.toolbar_layoutbackinweb,//
//            R.id.toolbar_layoutrightingoodsdetail})//
//    public void ClickInDetail(View view) {
//
//        switch (view.getId()) {
//
//            case R.id.toolbar_layoutbackinweb: {
//
//                if (!DoubleClickListener.isFastDoubleClick()) {
//                    methodBack();
//                }
//
//                break;
//            }
//
//
//            case R.id.toolbar_layoutrightingoodsdetail: {//点击购物车的外侧整体布局内容
//
//                // TODO: 2023-07-21 14:06 这里应该是没有购物车的，仅仅是一个查看详情的能力。
////                if (!DoubleClickListener.isFastDoubleClick()) {
////
////                    Bundle bundle = new Bundle();
////                    bundle.putInt(ConstantApi.EXTRA_LOGINKEY, ConstantApi.EXTRA_LOGINKEY_FORMGOODDETAIL);
////                    ActivityUtils.startActivity(bundle, HomeMainActivity.class);
////
////                    //同时杀死该界面
////                    methodBack();
////
////                }
//
//                break;
//            }
//
//            default:
//                break;
//        }
//
//    }


    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        //LogUtils.d("itchen----WebGoodDetailActivity-------onNewIntent");

        //must store the new intent unless getIntent() will return the old one
        setIntent(intent);

        processExtraData();

        gainDatas();

    }

    private void processExtraData() {

        Intent i_getvalue = this.getIntent();
        Bundle bundle = i_getvalue.getExtras();

        if (bundle != null) {

            //标识标定时从扫描二维码过来的
            flag_jumpFrom_where = bundle.getInt(ExtraKey.EXTRA_JUMPFROM_WHERE);

            goodsBean = bundle.getParcelable(ExtraKey.EXTRA_PRODUCTBEAN);
            webViewFlag = bundle.getInt(ExtraKey.EXTRA_WEBVIEW_FLAG);//携带的方式数字判断

            if (goodsBean != null) {//重新赋值商品的id信息
                productIdPass = goodsBean.getProductId();
                productCountPass = 1;//默认进来数量是0
            }

            //2018年07月27日添加点击轮播图获取专题内容，和从扫描二维码使用一套
            //2021年05月10日首页也修改
            broadcastingwebViewUrl = bundle.getString(ExtraKey.EXTRA_WEBVIEW_BROADCASTINGWEBVIEWURL);


        }

        //------------------------------------------------------------------------------------------------------------
        String action = i_getvalue.getAction();

        //String datastring = i_getvalue.getDataString();

        //LogUtils.d("itchen---datastring=" + datastring);

        //datastring.replace("#/vue","");
        //String  temp = datastring.replace("shopDetail","");
        //LogUtils.d("itchen---datastring变更=" + temp);

        //2021-7-23 17:46:51 备注：这个需求是【在门店使用浏览器扫描商品的二维码，然后直接跳转到我们的APP的商品详情页】。
        //String initString = "shequguanjia://192.168.0.191:9090/#/vue/shopDetail?userToken=21cb798916b4bd98fc575c5a75c5f332&shopInfoId=5&productId=73";
        //Uri uriTemp = i_getvalue.getData();
        //String hashextra = i_getvalue.getStringExtra("hash");
        //LogUtils.d("itchen---hash=" + hashextra);

        //-----------------------------------------------------------------------------------------
        if (!TextUtils.isEmpty(action)) {

            if (Intent.ACTION_VIEW.equals(action)) {//如果是浏览器启动

                Uri uri = i_getvalue.getData();

                if (uri != null) {

                    //LogUtils.d("itchen--->scheme:" + uri.getScheme());
                    //LogUtils.d("itchen--->host:" + uri.getHost());
                    //LogUtils.d("itchen--->port:" + uri.getPort());
                    //LogUtils.d("itchen--->path:" + uri.getPath());
                    //LogUtils.d("itchen--->query:" + uri.getQuery());

                    //List<String> pathSegments = uri.getPathSegments();
                    //LogUtils.d("itchen---pathSegments==>" + pathSegments);

                    //LogUtils.d("itchen分割线----------------------------------------");

                    String productId = uri.getQueryParameter("productId");
                    String shopInfoId = uri.getQueryParameter("shopInfoId");
                    String userToken = uri.getQueryParameter("userToken");
                    //String hash = uri.getQueryParameter("hash");

                    //LogUtils.d("itchen-->productId：" + productId);
                    //LogUtils.d("itchen-->shopInfoId：" + shopInfoId);
                    //LogUtils.d("itchen-->userToken：" + userToken);

                    //flag_jumpFrom_where = ExtraKey.VALUE_JUMPFROM_BROWSER;
                    queryBrowser = uri.getQuery();
                    shopInfoBrowser = uri.getQueryParameter("shopInfoId");
                    productIdBrowser = uri.getQueryParameter("productId");

                }
            }
        }
        //-----------------------------------------------------------------------------------------


    }

    private void findWebView() {

        if (mWebView != null) {

            mWebView.setWebViewClient(new WebViewClient() {

                /*@Override
                public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                    //super.onReceivedSslError(view, handler, error);
                    handler.proceed();// 接受所有网站的证书
                }*/

                @Override
                public void onReceivedSslError(WebView webView,
                                               com.tencent.smtt.export.external.interfaces.SslErrorHandler sslErrorHandler,
                                               com.tencent.smtt.export.external.interfaces.SslError sslError) {
                    sslErrorHandler.proceed();// 接受所有网站的证书
                }

                @Override
                public void onPageStarted(WebView webView, String s, Bitmap bitmap) {
                    super.onPageStarted(webView, s, bitmap);

                    //LogUtils.d("itchen----onPageStarted加载开始--->" + s);

                    mWebView.getSettings().setBlockNetworkImage(false);

                    /*if (loadingeasyInWebDetail != null) {
                        loadingeasyInWebDetail.showLoading();
                    }*/

                }

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {


                    if (!TextUtils.isEmpty(url)) {

                        //LogUtils.d("itchen----shouldOverrideUrlLoading--url 不是空==" + url);

                        view.loadUrl(url);
                    } else {

                        //LogUtils.d("itchen----shouldOverrideUrlLoading--url 空空~~");

                        netWorkError();
                        //finishRefresh(refreshLayoutInWebGoods);
                    }

                    return true;
                }

                /**
                 * 通知主机应用程序更新其访问的链接数据库。
                 * @param webView 启动这个回调的webview
                 * @param s 正在访问的网址
                 * @param b 如果这个url正在被重新加载就返回true
                 */
                @Override
                public void doUpdateVisitedHistory(final WebView webView, String s, boolean b) {
                    super.doUpdateVisitedHistory(webView, s, b);
                    //更新历史记录

                    //LogUtils.d("itchen------doUpdateVisitedHistory");
                    //LogUtils.d("itchen----doUpdateVisitedHistory地址==" + s);
                    //http://222.222.17.184:8881//app/html/productPage.html?userToken=c52b3bd6816af831a4e9396c500f8e97&productId=25&communityId=1
                    //添加判断是调用接口过来的


                    //2018年07月19日测试发现该处是可以测试通过的
                    //2018年发现从专题进入到商品详情的时候，居然给专题的页面历史清空掉了

                    if (webView != null) {

                        if (s.contains("productPage")) {

                            webView.post(new Runnable() {
                                @Override
                                public void run() {

                                    //区分开如果是从点击banner进来的时候不清空
                                    //如果是从其他进入该界面的时候判断下且清空

                                    if ((webViewFlag != ExtraValue.VALUE_JUMPFROM_GOODSMAINBANNER)//
                                            || (webViewFlag != ExtraValue.VALUE_JUMPFROM_HOMEMAINBANNER)) {//

                                        webView.clearHistory();

                                    } else {
                                        //LogUtils.d("itchen---是从团购的顶部banner过来的");
                                    }

                                    //LogUtils.d("doUpdateVisitedHistory-更新了之前的历史记录");
                                }
                            });

                        }

                    }

                }

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);

                    mWebView.getSettings().setBlockNetworkImage(false);

                    /*if (loadingeasyInWebDetail != null) {
                        loadingeasyInWebDetail.showContent();
                    }*/

                    loadingGone();

                    //finishRefresh(refreshLayoutInWebGoods);

                    //2018年07月18日新增可能有专题页面，所以这里下拉刷新不可用
                    //setRefreshfalse();

                    //=======================================
                    //LogUtils.d("itchen--详情加载完毕----onPageFinished--" + url);
                }
            });


            // TODO: 2023-01-30 11:30 这个是可以删除的
            mWebView.setWebChromeClient(new WebChromeClient() {

                @Override
                public void onProgressChanged(WebView webView, int newProgress) {
                    super.onProgressChanged(webView, newProgress);

                    if (handlerWebDetail != null) {
                        sendMsg(handlerWebDetail, HANDLER_PROGRESS_FLAG, newProgress);
                    }

                }

                @Override
                public void onReceivedTitle(WebView webView, String s) {
                    super.onReceivedTitle(webView, s);
                    //retain
                }

            });

        }

    }

    @Override
    protected int getContentViewId() {

        //设置全屏,有点不美观,暂时不要设置
        //ScreenUtils.setFullScreen(WebGoodDetaillActivity.this);

        /*try {
            if (Build.VERSION.SDK_INT >= 11) {
                this.getWindow()
                        .setFlags(
                                android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                                android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
            }
        } catch (Exception e) {
            //retain
        }*/

        //只是想让某个窗口启用硬件加速 级别是在 window 级别
        try {
            if (Integer.parseInt(android.os.Build.VERSION.SDK) >= 11) {
                getWindow()
                        .setFlags(
                                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
            }
        } catch (Exception e) {
            //retain
        }

        return R.layout.activity_web_view_detail;
    }

    @Override
    protected void initToolBar(final ToolbarHelper toolbarHelper) {

        //绑定写在这里才有效
        //Bundle bundle = this.getIntent().getExtras();
        //if (bundle != null) {
        //  if (goodsBen!=null){
        //titleName = goodsBan.getProductName();
        //titleName = bundle.getString(ConstantApi.EXTRA_CATEGORY_NAME, "");
        //webViewFlag = bundle.getInt(ConstantApi.EXTRA_WEBVIEW_FLAG);//携带的方式
        //}
        //}

    }




    /*@Subscribe(threadMode= ThreadMode.MAIN)
    public void onEventMainThreadEventNumberInNoHeader(EventNumber eventNumber){

        if (eventNumber!=null){

            //单独控制小红点的，不控制其他
            if (eventNumber.getMsg() == ConstantApi.EVENTBUS_SHOPCARNUMBER) {

                //LogUtils.d("itchen----县域特色馆 收到 发送的数字");

                if (imageViewHongDianInNoHeader != null) {

                    Delivery.getInstance().post(new Runnable() {

                        @Override
                        public void run() {

                            if (mSession.getTotalNumber() > 0) {
                                CommUtils.setViewVisible(imageViewHongDianInNoHeader);
                            } else {
                                CommUtils.setViewGone(imageViewHongDianInNoHeader);
                            }

                        }
                    });

                }
            }

        }

    }*/


//    @Subscribe(threadMode = ThreadMode.MAIN)
//    public void onEventMainThreadEventNumber(EventNumber eventNumber) {
//
//        if (eventNumber != null) {
//
//            //单独控制小红点的，不控制其他
//            if (eventNumber.getMsg() == ConstantApi.EVENTBUS_SHOPCARNUMBER) {
//
//                //LogUtils.d("itchen----购物车详情收到 发送的数字");
//
//                if (imageViewHongDianIndetail != null) {
//
//                    imageViewHongDianIndetail.post(new Runnable() {
//
//                        @Override
//                        public void run() {
//
//                            if (_sessionErrorActivity.getTotalNumber() > 0) {
//                                CommUtils.setViewVisible(imageViewHongDianIndetail);
//                            } else {
//                                CommUtils.setViewGone(imageViewHongDianIndetail);
//                            }
//
//                        }
//                    });
//
//                }
//
//            }
//        }
//    }


    @Override
    public void onClickNodata(View v) {

        //这一段监听可以不用再设置了，亲自测试可用
        if (NetworkUtils.isConnected()) {//网络已连接则重试，未连接则提示打开设置界面

            findWebView();
            gainDatas();

        } else {

            //2018年01月24日亲测这种方式是可以的，可以应用到整个项目，再做封装吧
            /*new AlertView("标题", //
                    ConstantApi.NETWORKSETTING, //
                    "取消", //
                    new String[]{"确定"}, //
                    null, //
                    WebGoodDetaillActivity.this,//
                    AlertView.Style.Alert, //
                    new OnItemClickListener() {//
                        @Override
                        public void onItemClick(Object o, int position) {//
                            if (position == 0) {
                                NetworkUtils.openWirelessSettings();//
                            }
                        }
                    })//
                    .show();*/


            /*new AlertView.Builder()//
                    .setContext(WebViewNormalActivity.this)//
                    .setStyle(AlertView.Style.Alert)//
                    .setTitle("提示")//
                    .setMessage(ConstantApi.NETWORKSETTING)//
                    .setCancelText("取消")
                    .setDestructive(new String[]{"打开"})
                    .setOthers(null)
                    .setOnItemClickListener(new OnItemClickListener() {//
                        @Override
                        public void onItemClick(Object o, int position) {//
                            NetworkUtils.openWirelessSettings();//
                        }
                    })//
                    .build()//
                    .setCancelable(true)//
                    .show();//*/

        }

    }

    /*private void setAnyBarAlpha(int alpha) {
        toolbar.getBackground().mutate().setAlpha(alpha);
        Sofia.with(this)
                .statusBarBackgroundAlpha(alpha);
    }*/


//    public class JSBridgeWebChromeClient extends WebChromeClient {
//        @Override
//        public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
//            result.confirm(JSBridge.callJava(view, message));
//            return true;
//        }
//    }

//    private JSBridgeWebChromeClient webChromeClient = new JSBridgeWebChromeClient();

    float x = 0;
    float y = 0;

    @Override
    public void initViews() {

        getWindow().setFormat(PixelFormat.TRANSLUCENT);

        mCircleProgressView.setTextEnabled(true);
        //mCircleProgressView.setInterpolator(new AccelerateDecelerateInterpolator());
        mCircleProgressView.setStartAngle(45);
        //mCircleProgressView.setProgressWithAnimation(100, 2000);
        mCircleProgressView.setProgress(10);//默认10个进度条

        /*mCircleProgressView.addAnimationListener(new ProgressAnimationListener() {
            @Override
            public void onValueChanged(float v) {

                //mCircleProgressView.setProgress(newProgress);

            }

            @Override
            public void onAnimationEnd() {
                //mCircleProgressView.setVisibility(View.GONE);
            }
        });*/

        //2019年08月18日之前的代码
        //mWebView = new WebView(Utils.getApp());
        //2019年08月18日之后的代码
        mWebView = new X5WebView(this);

        //初始化进度条
        progressView = new ProgressView(WebGoodDetaillActivity.this);

        //自己手动修改
        final float scale = WebGoodDetaillActivity.this.getResources().getDisplayMetrics().density;
        //int reslut = (int) (dpValue * scale + 0.5f);
        int reslut = (int) (2 * scale + 0.5f);

        progressView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, reslut));

        //progressView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, SizeUtils.dp2px(2)));
        //progressView.setColor(ColorUtils.getColor(R.color.progresscol));
//        progressView.setColor(Color.parseColor("#31CE15"));
        progressView.setColor(ContextCompat.getColor(this, R.color.redcomm));
        progressView.setProgress(10);

        if (mWebView != null) {

            mWebView.addView(progressView);

            //加载页面
            //=================================================================================================
            //WebSettings webSetting = mWebView.getSettings();
            //mWebView.clearCache(true);//手动清空缓存内容。
            mWebView.requestFocus();//触摸焦点起作用、

        }

        //这是系统自带的webView
        //mWebView.setVerticalScrollBarEnabled(false);//取消Vertical ScrollBar显示
        //mWebView.setHorizontalScrollBarEnabled(false); //取消Horizontal ScrollBar显示

        mWebView.setClickable(true);

        CommUtils.setWebViewX5(mWebView, 0);

        //================================================================================================================================
//        Request<JSONObject> request = NoHttp.createJsonObjectRequest(Constants.getInstance().getProductWebPage(), RequestMethod.POST);
//
//        Map<String, Object> hashMap = new HashMap<>();
//        hashMap.put("shopInfoId", _sessionErrorActivity.getShopInfoId());
//        hashMap.put("communityId", _sessionErrorActivity.getCommunityId());//itchen自己加
//
//        request.setDefineRequestBodyForJson(JSON.toJSONString(hashMap));

        //===================================================================================================================================

        try {
            //do
            if (mWebView.getX5WebViewExtension() != null) {

                mWebView.getX5WebViewExtension().setHorizontalScrollBarEnabled(false);//水平不显示滚动按钮
                mWebView.getX5WebViewExtension().setVerticalScrollBarEnabled(false); //垂直不显示滚动按钮

                //LogUtils.d("itchen-----getX5WebViewExtension 不是空， tbs 集成成功");
                //添加日志:代表是详情内容
                //CommUtils.addLog(ConstantApi.WHAT_GETPRODUCTWEBPAGE, request, hashMap, ConstantApi.GETX5WEBVIEWEXTENSION_NOT_NULL);
                //================================================================================================================================

            } else {

                //LogUtils.d("itchen-----getX5WebViewExtension 是空， tbs 集成 不成功");
                //CommUtils.displayToastLong(mActivityInstance, "tbs内核未加载~");
                //CommUtils.addLog(ConstantApi.WHAT_GETPRODUCTWEBPAGE, request, hashMap, ConstantApi.GETX5WEBVIEWEXTENSION_NULL);

            }

        } catch (Exception e) {
            //catch
            e.printStackTrace();
        }


        //交互暂时屏蔽。
//        mWebView.addJavascriptInterface(getHtmlObject(), "Android");

        //2021年05月10日 为了查看大图 添加单个图片的监听
        mWebView.addJavascriptInterface(new MJavascriptInterface(mActivityInstance, mActivityInstance), "imageClick");

        //------------------------------------------------------------------------------------------------
        //webview启动后注册接口，这里注册主要是为了把方法加入容器，h5调用时候可以找到：
        //JSBridge.register(NativeApi.class.getSimpleName(), NativeApi.class);
        //webview 设置接口client:
        //mWebView.setWebChromeClient(webChromeClient);

        //------------------------------------------------------------------------------------------------

        mWebView.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                //通过wenview的touch来响应web上的图片点击事件
                //float density = getResources().getDisplayMetrics().density; //屏幕密度
                float density = ScreenUtils.getScreenDensity();//集成方法获取屏幕密度
                float touchX = event.getX() / density;  //必须除以屏幕密度
                float touchY = event.getY() / density;


                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    x = touchX;
                    y = touchY;
                }

                if (event.getAction() == MotionEvent.ACTION_UP) {

                    float dx = Math.abs(touchX - x);
                    float dy = Math.abs(touchY - y);

                    if (dx < 10.0 / density && dy < 10.0 / density) {

                        if (!TextUtils.isEmpty(requestCurrentLoadPgeUrl)) {

//                            if (TextUtils.equals(requestCurrentLoadPgeUrl, Constants.getInstance().getComboProductUrl())
//                                    || TextUtils.equals(requestCurrentLoadPgeUrl, Constants.getInstance().getComboOrderUrl())) {
//
//                                //LogUtils.d("itchen----onTouch----当前获取的界面地址是--requestCurrentLoadPgeUrl--->" + requestCurrentLoadPgeUrl);
//
//                                return false;
//                            }

                        }

//                        CommUtils.clickImageInWebView(touchX, touchY, mWebView);
                    }

                }

                return false;
            }
        });

        findWebView();

//        mWebView.setOnLongClickListener(new View.OnLongClickListener() {
//
//            @Override
//            public boolean onLongClick(View v) {
//
//                //保存图片 查看大图
//                //LogUtils.d("itchen----->执行 普通的点击 事件内容");
//                //WebView.HitTestResult result = mWebView.getHitTestResult();
//                //IX5WebViewBase.HitTestResult result = mWebView.getX5HitTestResult();
//
//                WebView.HitTestResult resultImageUrlLoad = mWebView.getHitTestResult();
//
//                if (resultImageUrlLoad != null) {
//
//                    //如果点击的是图片的类型
//                    if (resultImageUrlLoad.getType() == WebView.HitTestResult.IMAGE_TYPE //
//                            || resultImageUrlLoad.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {//
//
//                        //思路是先在长按的时候先识别，识别成功了就展示
//                        //获取图片内容
//                        ThreadUtils.executeByFixed(2, new ThreadUtils.SimpleTask<String>() {
//                            @Nullable
//                            @Override
//                            public String doInBackground() throws Throwable {
//
//                                FutureTarget<File> fileFutureTarget = GlideApp.with(WebGoodDetaillActivity.this)
//                                        .asFile()
//                                        .load(resultImageUrlLoad.getExtra().trim())
//                                        .submit();
//
//                                if (fileFutureTarget != null) {
//
//                                    File imageFile = null;
//
//                                    try {
//
//                                        imageFile = fileFutureTarget.get();
//
//                                        //LogUtils.d("itchen---Glide下载的图片路径是1:" + imageFile.getPath());
//                                        //LogUtils.d("itchen---Glide下载的图片路径是2:" + imageFile.getAbsolutePath());
//
//                                        //itchen---Glide下载的图片路径是1:/data/user/0/com.dgj.dinggovern/cache/image_catch/5c749825b8611bd9ba412faf10453bddd4652469135f2811c74142de49dc26a9.0
//                                        //itchen---Glide下载的图片路径是2:/data/user/0/com.dgj.dinggovern/cache/image_catch/5c749825b8611bd9ba412faf10453bddd4652469135f2811c74142de49dc26a9.0
//
//                                    } catch (ExecutionException e) {
//                                        e.printStackTrace();
//                                    } catch (InterruptedException e) {
//                                        e.printStackTrace();
//                                    }
//                                    return imageFile.getAbsolutePath();
//                                }
//
//                                return "";
//
//                            }
//
//                            @Override
//                            public void onSuccess(final @Nullable String resultThread) {
//
//                                //这种仅仅适合识别本地图片
//                                new AsyncTask<Void, Void, String>() {
//
//                                    @Override
//                                    protected String doInBackground(Void... voids) {
//                                        //LogUtils.d("itchen----->执行二维码识别的线程是在--->");
//                                        return QRCodeDecoder.syncDecodeQRCode(resultThread);
//                                    }
//
//                                    @Override
//                                    protected void onPostExecute(String stringResult) {//二维码的识别结果
//                                        //super.onPostExecute(s);
//                                        //父类也是个空实现
//                                        //LogUtils.d("itchen------>识别二维码的结果是--->" + stringResult);
//
//                                        if (!TextUtils.isEmpty(stringResult)) {
//
//                                            //如果发现识别出来的有东西，那么就展示【识别二维码按钮】
//                                            //new String[]{"查看大图", "保存图片", "复制图片地址", "扫描二维码"};
//                                            CommUtils.methodZXingQRCodeSuccessed(//
//                                                    WebGoodDetaillActivity.this,//
//                                                    resultImageUrlLoad,
//                                                    handlerWebDetail,//
//                                                    HANDLER_QCODE_FLAG,//
//                                                    WebGoodDetaillActivity.this,//
//                                                    umShareListener,//
//                                                    mSetting);
//
//                                        } else {
//
//                                            //如果识别二维码失败，那么仅仅只有三个选项
//                                            //识别失败了，就不展示【二维码按钮】
//                                            //LogUtils.d("itchen---->二维码识别失败 onImageDecodeFailed");
//
//                                            //观察过日志是在主线程
//
//                                            //保存图片
//                                            //String[] itemsIsHasQRCodeVariable = {"查看大图", "保存图片", "复制图片地址"};
//
//                                            //如果存活着就弹窗
//                                            CommUtils.methodZXingQRCodeFailed(//
//                                                    WebGoodDetaillActivity.this,//
//                                                    resultImageUrlLoad,
//                                                    handlerWebDetail,//
//                                                    HANDLER_QCODE_FLAG,//
//                                                    WebGoodDetaillActivity.this,//
//                                                    umShareListener,//
//                                                    mSetting);
//
//                                        }
//
//                                    }
//
//                                }.execute();
//
//                            }
//                        });
//
//                    }
//
//                }
//
//                return false;
//            }
//
//        });

        //====================================================================

        if (frameLayoutWebViewDetail != null) {

            frameLayoutWebViewDetail.setVerticalFadingEdgeEnabled(false);
            frameLayoutWebViewDetail.setVerticalScrollBarEnabled(false);
            frameLayoutWebViewDetail.setHorizontalScrollBarEnabled(false);

            //这个设置了无效
            frameLayoutWebViewDetail.addView(mWebView, new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.MATCH_PARENT));
        }

//        if (webViewFlag == ExtraValue.VALUE_JUMPFROM_FURNITUREDETAIL) {
//            toolbar_layoutRightInGoodsDetail.setVisibility(View.GONE);
//        } else {
//            toolbar_layoutRightInGoodsDetail.setVisibility(View.VISIBLE);
//        }

        //这个toolbar本来没有作用，但是为了自适应高度也加上算了。
        //toolbar = findViewById(R.id.toolbarindetail);
        //setSupportActionBar(toolbar);
        //NestedScrollView scrollView = (NestedScrollView) findViewById(R.id.scrollViewindetail);
        /*
        //原始代码内容
        Sofia.with(this)
                .statusBarBackground(ContextCompat.getColor(this, R.color.white))
                .navigationBarBackground(ContextCompat.getDrawable(this, R.color.black))
                .invasionStatusBar()
                .fitsSystemWindowView(toolbar);
        setAnyBarAlpha(0);*/

        //====================================================================================
        //itchen加载小红点
        //====================================================================================
//        imageViewHongDianIndetail = (ImageView) this.findViewById(R.id.imagehongdianindetail);
//
//        if (imageViewHongDianIndetail != null) {
//
//            imageViewHongDianIndetail.post(new Runnable() {
//                @Override
//                public void run() {
//
//                    if (mSession.getTotalNumber() > 0) {
//                        CommUtils.setViewVisible(imageViewHongDianIndetail);
//                    } else {
//                        CommUtils.setViewGone(imageViewHongDianIndetail);
//                    }
//
//                }
//            });
//
//        }

        //==========================================================================================

        //添加查看大图的事件内容========================================================================================


        /*refreshLayoutInWebGoods.setOnRefreshListener(new OnRefreshListener() {

            @Override
            public void onRefresh(final RefreshLayout refreshlayout) {

                //第一种写法
                //method_loadUrl("https://github.com/scwang90/SmartRefreshLayout");

                //正常的写法，应该是加载数据
                refreshlayout.getLayout().post(new Runnable() {

                    @Override
                    public void run() {

                        if (NetworkUtils.isConnected()) {

                            if (webViewFlag != ConstantApi.VALUE_JUMPFROM_GOODSMAINBANNER) {

                                //团购商品类和家具商品类都调用这个接口
                                getServerDatas(productIdPass);

                            } else {

                                //2018年07月27日之前的原始代码，可以不删除，反复调用
                                //getServerDatasBanner(broadcastingId);

                                //2018年07月28日重新做修改直接使用携带过来的链接展示
                                //早期代码的时候是broadcastingwebViewUrl+小区id内容。
                                fillDatas(broadcastingwebViewUrl);

                            }

                            //测试代码,不可删
                            //method_loadUrl("http://192.168.0.55/app_html5/html/productPage.html");

                        } else {

                            netWorkError();

                            finishRefresh(refreshlayout);

                        }

                    }
                });

            }
        });*/

        //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=

    }

    /**
     * 检查是否关闭
     */
    private void checkClose() {

        if (mAlertView != null) {

            if (mAlertView.isShowing()) {
                mAlertView.dismiss();
                mAlertView = null;
            }
        }
    }

    private void showAlertViewPhoneNumber(final String content) {

        //没有标题内容的
        //第一种方式： 这种样式先这样。可以自定义
        CommUtils.checkDialog(mAlertView);

        mAlertView = new AlertView.Builder().setContext(WebGoodDetaillActivity.this)
                .setStyle(AlertView.Style.Alert)
                .setTitle("")//没有标题内容
                .setMessage(content)//
                .setCancelText(StringUtils.getString(R.string.clearcachecancel))//取消
                .setDestructive(ConstantSign.ALERTVIEW_RIGHT_COPY_INFORMATION)//拨打
                .setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(Object o, int position) {

                        //取消按钮是从-1计算的
                        //这应该是确定的点击事件内容
                        if (position != AlertView.CANCELPOSITION) {

                            //PhoneUtils.call(content);//这个提示权限丢失，故丢弃。
                            WebGoodDetaillActivity.this.startActivity(CommUtils.callThePhoneNumAction_dial(content));

//                            if (!AndPermission.hasPermissions(mActivityInstance, Permission.CALL_PHONE)) {
//
//                                CommUtils.authorityRequest(mActivityInstance, ConstantApi.MATERIALDIALOG_AUTHORITY_CONTENT_CALLPHONE, new AuthorityCallbackListener() {
//                                    @Override
//                                    public void doSomeThing() {
//
//                                        AndPermission.with(WebGoodDetaillActivity.this)
//                                                .runtime()//
//                                                .permission(Permission.CALL_PHONE)
//                                                .rationale(new RuntimeRationale())
//                                                .onGranted(new com.yanzhenjie.permission.Action<List<String>>() {
//
//                                                    @Override
//                                                    public void onAction(List<String> permissions) {
//
//                                                        //PhoneUtils.call(content);//这个提示权限丢失，故丢弃。
//                                                        WebGoodDetaillActivity.this.startActivity(CommUtils.callThePhoneNum(content));
//
//                                                    }
//                                                }).onDenied(new com.yanzhenjie.permission.Action<List<String>>() {
//                                                    @Override
//                                                    public void onAction(List<String> permissions) {
//
//                                                        CommUtils.displayToastShort(WebGoodDetaillActivity.this, ConstantApi.NEEDPERMISS_PHONE);
//
//                                                        if (AndPermission.hasAlwaysDeniedPermission(WebGoodDetaillActivity.this, permissions)) {
//                                                            mSetting.showSetting(ConstantApi.PERMISSION_NORMAL, WebGoodDetaillActivity.this, permissions);
//                                                        }
//
//                                                    }
//                                                }).start();
//
//                                    }
//                                });
//
//
//                            } else {
//
//                                //PhoneUtils.call(content);//这个提示权限丢失，故丢弃。
//                                WebGoodDetaillActivity.this.startActivity(CommUtils.callThePhoneNum(content));
//
//                            }

                        }
                    }
                })
                .setOthers(null)//
                .build();

        mAlertView.setCancelable(true).show();//

    }


    //更改购物车接口内容。
//    private void method_updateWebView(int _productId, int _productCount) {
//
//        //final String requestUrl = Constants.getInstance().saveOrUpdateCart();
//        final Request<JSONObject> request = NoHttp.createJsonObjectRequest(Constants.getInstance().saveOrUpdateCart(), RequestMethod.POST);
//
//        Map<String, Object> map = new HashMap<>();
//        map.put("productId", _productId);
//        map.put("productCount", _productCount);
//
//        request.setDefineRequestBodyForJson(JSON.toJSONString(map));
//
//        startRequest(ConstantApi.WHAT_SHOPCARUPDATEINDETAIL, request, map, httpListener, true, false);
//    }


    @Override
    public void gainDatas() {

        if (NetworkUtils.isConnected()) {

            //2018年07月18日 因为接入专题内容，需要将下拉刷新去掉,所以这一块重新变换逻辑。
            /*if (webViewFlag != ConstantApi.VALUE_JUMPFROM_GOODSMAINBANNER) {

                //团购商品类和家具商品类都调用这个接口
                getServerDatas(productIdPass);

            } else*/

//            if (webViewFlag == ConstantApi.VALUE_JUMPFROM_QRCODE) {//扫描二维码过来的直接加载静态界面。
//
//                //正常的H5的都走这里，不是的都拦截在外边。
//                fillDatas(broadcastingwebViewUrl.contains("?")//
//                        ? broadcastingwebViewUrl + "&userToken=" + _sessionErrorActivity.getToken() + "&shopInfoId=" + _sessionErrorActivity.getShopInfoId()//
//                        : broadcastingwebViewUrl + "?userToken=" + _sessionErrorActivity.getToken() + "&shopInfoId=" + _sessionErrorActivity.getShopInfoId());//
//
//
//            } else if (webViewFlag == ConstantApi.VALUE_JUMPFROM_GOODSMAINBANNER//如果是从团购的顶部轮播图过来的。
//                    || webViewFlag == ConstantApi.VALUE_JUMPFROM_HOMEMAINBANNER) {//如果是从顶部轮播图过来的。
//
//                //2018年07月27日之前的原始代码，可以不删除，反复调用
//                //getServerDatasBanner(broadcastingId);
//                //2018年07月28日重新做修改直接使用携带过来的链接展示
//                //早期代码的时候是broadcastingwebViewUrl+小区id内容。
//                //2021年时候
//
//                fillDatas(broadcastingwebViewUrl);
//
//            } else {
//
//                //团购商品类和家具商品类都调用这个接口
//                getServerDatas(productIdPass);
//
//            }

        } else {

            netWorkError();

            //finishRefresh(refreshLayoutInWebGoods);
            //setRefreshfalse();

        }

    }


    /**
     * 动态加载该页面和静态加载该页面的通用填充
     */
    private void fillDatas(final String _webViewData) {

        //2018年07月30日时候小区id服务器端自动拼接过去
        //method_loadUrl(_webViewData);

        //第一种方式
        sendMsg(handlerWebDetail, HANDLER_WEBDETAIL_FLAG, _webViewData);

        // mCompositeDisposable.add(Observable.just(1)//
        // .subscribeOn(AndroidSchedulers.mainThread())//
        //.observeOn(AndroidSchedulers.mainThread())//
        // .subscribe(new Consumer<Integer>() {
        // @Override
        // public void accept(Integer integer) throws Exception {

        //    if (integer == 1) {

        //2018年07月30日时候小区id服务器端自动拼接过去
        // method_loadUrl(_webViewData);
        //method_loadUrl("https://github.com/scwang90/SmartRefreshLayout");

        // } //else if (integer == 2) {
        //LogUtils.d("itchen----method_loadUrl");
        //2018年07月19日发现这一块挺消耗性能的
        //如果有历史记录等等清空历史记录
                                                    /*if (mWebView != null) {
                                                        LogUtils.d("itchen--->清空历史mWebView");
                                                        mWebView.clearHistory();
                                                    }*/

        //2019/1/16 修改完毕再次修改逻辑
                            /*mCompositeDisposable.add(Observable.timer(3, TimeUnit.SECONDS)//
                                    .observeOn(AndroidSchedulers.mainThread())//
                                    .subscribeOn(AndroidSchedulers.mainThread())//
                                    .subscribe(new Consumer<Long>() {
                                        @Override
                                        public void accept(Long aLong) throws Exception {
                                            //LogUtils.d("itchen--5秒后 收到关闭消息");
                                            if (refreshLayoutInWebGoods != null && refreshLayoutInWebGoods.isRefreshing()) {
                                                refreshLayoutInWebGoods.finishRefresh();
                                            }
                                        }
                                    }));*/
        //  }
        //  }
        //  }));

    }


    private void method_loadUrl(String h5url) {

        //貌似看过几个博客都是这个写在监听器之前.
        if (!TextUtils.isEmpty(h5url)) {

            if (mWebView != null) {

                //mWebView.clearHistory();
                mWebView.loadUrl(h5url);

                //LogUtils.d("itchen-----执行--loadUrl---需要再次清空一次历史记录");

            }

        } else {

            /*if (refreshLayoutInWebGoods != null) {
                refreshLayoutInWebGoods.finishRefresh();//停止加载的
            }*/

            netWorkError();

        }

    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {


        if (keyCode == KeyEvent.KEYCODE_BACK) {

            CommUtils.checkDialog(mAlertView);

            if (mWebView != null) {

                if (mWebView.canGoBack()) {
                    //LogUtils.d("itchen-----onKeyDown----mWebView.canGoBack");
                    mWebView.goBack();

                    return true;
                }

            } else {

                //2018年07月18日第二种方式
                closeActivity();

            }

        }

        return super.onKeyDown(keyCode, event);
    }

    private void closeActivity() {

        //LogUtils.d("itchen---即将执行closeActivity");
        //严谨点
        if (mWebView != null) {

            final ViewGroup viewGroup = (ViewGroup) mWebView.getParent();
            //LogUtils.d("itchen---执行mWebView.getParent");

            if (viewGroup != null) {
                viewGroup.removeView(mWebView);
                //LogUtils.d("itchen---执行viewGroup.removeView");
            }
            mWebView.destroy();
        }

        if (ActivityUtils.isActivityAlive(WebGoodDetaillActivity.this)) {
            //LogUtils.d("itchen---即将执行finishActivity");
            ActivityUtils.finishActivity(WebGoodDetaillActivity.this);
        }

    }


    @Override
    public void methodBack() {

        //这个有点特殊需要跳转的内容
        //2018年05月16日发现本来这里该是正常的回退代码，但是发现反复进入详情，有回退历史记录
        if (mWebView != null) {

            if (mWebView.canGoBack()) {

                //LogUtils.d("itchen-----methodBack----mWebView.canGoBack");

                mWebView.goBack();

            } else {

                closeActivity();
                //2018年07月18日注释掉该处的原始代码
                //ActivityUtils.finishActivity(WebGoodDetaillActivity.this);

            }

        } else {
            closeActivity();

        }
    }
}
